﻿// 3597. 特殊排序.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <algorithm>

using namespace std;
/*
https://www.acwing.com/problem/content/3600/

输入一系列整数，将其中最大的数挑出(如果有多个，则挑出一个即可)，并将剩下的数进行排序，如果无剩余的数，则输出 −1。

输入格式
输入第一行包括 1个整数 N，代表输入数据的个数。

接下来的一行有 N个整数。

输出格式
第一行输出一个整数，代表 N个整数中的最大值，并将此值从数组中去除，将剩下的数进行排序。

第二行将排序的结果输出。

数据范围
1≤N≤1000
,
输入整数取值范围 [1,109]

输入样例：
4
1 3 4 2
输出样例：
4
1 2 3
*/

const int N = 1010;
int a[N];
int n;

int main()
{
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}

	sort(a, a + n);

	if (n <= 1) {
		cout << a[n - 1] << endl;
		cout << -1 << endl;
	}
	else {
		cout << a[n - 1] << endl;
		for (int i = 0; i < n - 1; i++) {
			cout << a[i] << " ";
		}
		cout << endl;
	}

	return 0;
}

 